﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinCourseControls
{
    public partial class FrmTabControl : Form
    {
        public FrmTabControl()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 添加选项卡按钮-功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddPage_Click(object sender, EventArgs e)
        {
            { // 添加选项卡
              //TabPage tab1 = new TabPage();
              //tab1.Name = "tp_Label";
              //tab1.Text = "Label标签页";
              //tab1.BackColor = Color.Yellow;
              //tabControl1.TabPages.Add(tab1); // 添加选项卡
            }

            //将Form窗体内嵌到TabPage中
            FrmButton frm = new FrmButton();   // 窗体
            frm.TopLevel = false;  // 将顶级窗体设置为false
            frm.FormBorderStyle = FormBorderStyle.None; // 无边框呈现
            frm.WindowState = FormWindowState.Maximized; // 最大化显示，填充
            TabPage tp = new TabPage();
            tp.Name = frm.Name;
            tp.Text = frm.Text;
            tp.Controls.Add(frm); // 添加窗体页面
            tabControl1.TabPages.Add(tp);
            frm.Show(); // 想要看到窗体还需要把窗体show出来。
        }

        /// <summary>
        /// 窗体加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmTabControl_Load(object sender, EventArgs e)
        {
            // tabControl1.SelectedIndex = 1;//选择页
           // tabControl1.SelectedTab = tpUsers;//设置选中页
            tabControl1.SelectTab("tpUsers"); // 通过名称设置选中页面
        }

        /// <summary>
        /// 选择按钮-设置选项卡一次选中
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSelect_Click(object sender, EventArgs e)
        {
            if (tabControl1.SelectedIndex < tabControl1.TabCount - 1)
                tabControl1.SelectedIndex += 1;
            else
                tabControl1.SelectedIndex = 0;
        }

        /// <summary>
        /// 关闭按钮-移除选中选项卡
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnRemove_Click(object sender, EventArgs e)
        {
            //移除普通选项卡
            //tabControl1.TabPages.Remove(tpUsers);// 通过控件移除页
            // tabControl1.TabPages.RemoveAt(0);  // 通过索引移除页
            //  tabControl1.TabPages.RemoveByKey("tpUsers");  // 通过key移除页

            //移除带内嵌窗体的选项卡
            TabPage tp = tabControl1.SelectedTab;//当前选择页
            foreach (Form item in Application.OpenForms)
            {
                if(tp.Name==item.Name)
                {   // 内嵌窗体tab页面，需要先关闭窗体才能移除
                    item.Close();
                    break;
                }
            }
            tabControl1.TabPages.Remove(tp);
        }
    }
}
